This disclosure relates to computer-generated imagery (CGI) and computer-aided animation. More specifically, this disclosure relates to techniques for preserving the shape of simulated and dynamic objects for use in CGI and computer-aided animation.
With the wide-spread availability of computers, computer graphics artists and animators can rely upon computers to assist in production process for creating animations and computer-generated imagery (CGI). This may include using computers to have physical models be represented by virtual models in computer memory. Typically, two-dimensional (2D) or three-dimensional (3D) computer-aided animation combines 2D/3D models of objects and programmed movement of one or more of the models. In 3D computer animation, the first step is typically the object modeling process. Objects can be sculpted much like real clay or plaster, working from general forms to specific details, for example, with various sculpting tools. Models may then be constructed, for example, out of geometrical vertices, faces, and edges in a 3D coordinate system to represent the objects.
These virtual models can then be manipulated using computers to, for example, simulate physics, design aesthetic actions such as poses or other deformations, crate lighting, coloring and paint, or the like, of characters or other elements of a computer animation display.
Pixar is one of the pioneering companies in the computer-generated imagery (CGI) and computer-aided animation industry. Pixar is more widely known as Pixar Animation Studios, the creators of animated features such as “Toy Story” (1995) and “Toy Story 2” (1999), “A Bugs Life” (1998), “Monsters, Inc.” (2001), “Finding Nemo” (2003), “The Incredibles” (2004), “Cars” (2006), “Ratatouille” (2007), and others. In addition to creating animated features, Pixar develops computing platforms and tools specially designed for computer-aided animation and CGI. One such example is now known as PhotoRealistic RenderMan, or PRMan for short. PRMan is a photorealistic RenderMan-compliant rendering software system based on the RenderMan Interface Specification (RISpec) which is Pixar's technical specification for a standard communications protocol (or interface) between 3D computer graphics programs and rendering programs. PRMan is produced by Pixar and used to render their in-house 3D animated movie productions. It is also available as a commercial product licensed to third parties, sold as part of a bundle called RenderMan Pro Server, a RenderMan-compliant rendering software system developed by Pixar based on their own interface specification. Other examples include tools and plug-ins for programs such as the AUTODESK MAYA high-end 3D computer graphics software package from AutoDesk, Inc. of San Rafael, Calif.
One core functional aspect of PRMan can include the use of a “rendering engine” to convert geometric and/or mathematical descriptions of objects into images. This process is known in the industry as “rendering.” For movies, other animated features, shorts, and special effects, a user (e.g., a skilled computer graphics artist) can specify the geometric or mathematical description of objects to be used in the rendered image or animation sequence, such as characters, props, background, or the like. The geometric description of the objects may include a number of animation control variables (avars) and values for the avars. In some instances, an animator may also pose the objects within the image or sequence and specify motions and positions of the objects over time to create an animation. In other instances, motions and positions of some objects, such as hair, clothing, and plants are usually too complex for a human animator to directly control at every stage of a computer animation. Instead, the human animator specifies the physics and/or physical properties of one or more dynamic or simulated objects. A computer program then employs physically-based numerical methods and techniques to simulate the motions and positions of these objects over time based on the physics or physical properties of the individual objects.
For simulated clothing objects, for example, the animator specifies the physical properties and construction of the cloth. For example, the animator specifies how the cloth bends due to forces or collisions with solid objects. The animator further specifies how the cloth deforms or collides with itself. Moreover, the animator specifies external forces that act on the cloth, such as gravity and wind.
In addition to modeling the physical properties of the simulated objects, the animator specifies motions and positions of kinematic or non-simulated objects (e.g., characters upon which the clothing objects rest). The animation of a non-simulated object generally is independent of and otherwise unaffected by motions and positions of simulated objects. However, the motions and positions of the non-simulated objects often are the principal influencer of motions and positions of simulated objects, as clothing and hair are likely to be associated with a kinematic character.
Consider a computer animation of a human character standing upright, wearing a jacket. The human character is a kinematic or non-simulated object that is directly animated by the skilled human animator. The animator specifies the physics (e.g., the physical properties) of the jacket which is a simulated object. In addition, the animator models how the jacket is associated with and worn by the human character. During simulation, the computer program simulates the motions and positions of the jacket using physically-based numerical techniques in response to external forces and the motions and positions of the human character.
If the physical properties and external forces acting on a simulated object are accurately modeled, the resulting motion of the simulated object will be plausible and seemingly realistic. In our jacket example, the cloth of the jacket should hang down and fold naturally. Furthermore, the cloth should react according to the motions and positions of the human character when the human character wears the jacket. However, modeling the simulated objects to be truly accurate is a delicate balance between the limitations and complexities of the animator's knowledge of physics and particle systems on the one hand and budgetary and time constraints on the other.
In addition, other problems exists with physically-based numerical methods and techniques used in computer animations. A particularly difficult problem in the simulation of secondary or simulated objects, such as cloth, is dealing with creeping or oozing behaviors. A creeping or oozing behavior occurs when motion of a simulated object associated with a non-simulated object continues in a visually unpleasing manner after a change in motion of the non-simulated object.
In the real world, most garments such as shirts, jackets, or pants undergo no significant movement or change in shape when their wearers cease moving. Internal forces in clothes, and friction between the clothes and their wearer, generally lock the clothes into a fixed position when the wearer's motion ceases. Typically, the clothes stops moving far less than a second after the wearer does. Although some garments, such as long dresses or ties, typically swing back and forth for some period of time, this desired and realistic motion is different from undesirable creeping or oozing behaviors that result during simulation using physically-based numerical methods and techniques.
Creating simulation programs for simulated objects, such as cloth, that can achieve the same effect after the wearer ceases moving has been difficult. One solution is to instruct the computer program during the simulation of our jacket example to freeze the cloth of the jacket in place whenever the human character ceases moving. The cloth then would be allowed to move again, when the human character begins to move. A problem with this solution is that our human character rarely remains exactly motionless. Typically, even when an animated character ceases movement, some small amount of “keep-alive” motion is applied. For example, the animator may rotate limbs of the character a few degrees or have the character sway back and forth just a little. It is during keep-alive motion, that the creeping or oozing of simulated objects is most apparent.
Accordingly, what is desired is to solve one or more of the problems relating to preserving the shape of simulated and dynamic objects for use in CGI and computer-aided animation, some of which may be discussed herein. Additionally, what is desired is to reduce some of the drawbacks relating to preserving the shape of simulated and dynamic objects for use in CGI and computer-aided animation, some of which may be discussed herein.